// Have include guard.
#ifndef FPK_SCALEFILTER_HPP
#define FPK_SCALEFILTER_HPP

#include "Filter.hpp"
#include "../Values/JoystickValue.hpp"
#include "../Values/TwoJoystickValue.hpp"

/**
 *  The ScaleFilter class is Filter that multiplies the input by the specified scale.
 */
template<typename Value>
class ScaleFilter :
	public Filter<Value>
{
	private:
		double m_scale;
	public:
		ScaleFilter(double scale) :
			m_scale(scale)
		{
		}
		
		virtual ~ScaleFilter()
		{
		}
		
		virtual Value Apply(const Value &input) const
		{
			return input * m_scale;
		}
};

#endif // #ifndef FPK_SCALEFILTER_HPP
